package main

import (
	"fmt"
	"encoding/json"
)

func main() {
	b := []byte(`{"Name": "Wednesday", "Age": 6, "Up": true, "Parents": ["Gomez", "Morticia"]}`);
	var f interface{}
	json.Unmarshal(b,&f)

	m,ok:=f.(map[string]interface{})
	if !ok { return }
	for k,v := range m {
		switch vt:=v.(type) {
			case string:
				fmt.Println("string:", k, ":", vt)
			case float64:
				fmt.Println("int:", k, ":", vt)
			case bool:
				fmt.Println("bool:", k, ":", vt)
			case []interface{}:
				fmt.Println("array:", k, ":", vt)
			default:
				fmt.Println("Unknown:", ":", vt)
				fmt.Printf("%T\n", vt)
		}

	}
}
